﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _44里氏转换
{
    class Program
    {
        static void Main(string[] args)
        {
            //里氏转换 
            //子类可以赋值给父类：如果有一个地方需要父类作为参数,那我们可以给一个子类代替
            //Zlei z = new Zlei();
            Fulei f = new Zlei();//s

            //string str = string.Join("|", new string[] { "1", "2", "3", "4" });
            //Console.WriteLine(str);
            //Console.ReadKey();

            //如果父类中装的是子类对象,那么可以将这个父类强转为子类对象

            //is 的用法
            //if(f is Zlei)
            //{
            //    Zlei zz = (Zlei)f;
            //    zz.Red();
            //}
            //else
            //{
            //    Console.WriteLine("转换失败");
            //}

            //as 的用法
            Zlei z = f as Zlei;
            z.Red();
            Console.ReadKey();



        }
        public class Fulei
        {
            public void Person()
            {
                Console.WriteLine("我是父类");
            }
        }

        public class Zlei:Fulei
        {
            public void Red()
            {
                Console.WriteLine("我是子类");
            }
        }

        public class Xlei:Fulei
        {
            public void Cader()
            {
                Console.WriteLine("我也是子类");
            }
        }
    }
}
